package cn.yunhe.service.impl;

import cn.yunhe.dao.UserDao;
import cn.yunhe.dao.UserLinkDao;
import cn.yunhe.entity.User;
import cn.yunhe.service.UserService;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * @author 孙敖
 * @date 2018/9/14 18:37
 */

@Service("userService")
public class UserServiceImpl implements UserService {

    /**
     * 扫描dao接口
     */
    @Resource
    private UserDao userDao;

    @Resource
    private UserLinkDao userLinkDao;

    /**
     * 新增客户
     * @param user
     */
    @Override
    public void addUser(User user) {
     userDao.addUser(user);
    }

    /**
     * 修改用户数据
     * @param user
     */
    @Override
    public void updateUser(User user) {
        userDao.updateUser(user);
    }

    /**
     * 获得用户Id
     * @param user
     * @return
     */
    @Override
    public User getUserById(User user) {
        return userDao.getUserById(user);
    }

    /**
     * 删除客户更新状态使状态不显示
     * @param user
     */
    @Override
    public void upUserStatus(User user) {
        userDao.upUserStatus(user);
    }

    /**
     * 改变客户黑名单状态使之移出
     * @param user
     */
    @Override
    public void upBlackStatus(User user) {
        userDao.upBlackStatus(user);
    }

    @Override
    public User findUserOrder(User user) {
       return userLinkDao.findUserOrder(user);
    }

    /**
     * 把参数绑定到cond,分页,返回page
     * @param cond
     * @return
     */
    @Override
    public Page queryLikeUsers(Map<String,Object> cond) {
        Page page=new Page();
        //得到记录总数,赋给page的total属性
        page.setTotal(userDao.getLikeUserCount(cond));
        //获取每页大小
        int pageSize=Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        //获取当前页码
        int currPageNum=Integer.parseInt(String.valueOf(cond.get("pageNum")));
        //计算出总页数
        page.setPageNum ((int) (page.getTotal()/pageSize+(page.getTotal()%pageSize==0?0:1)));
        //启动分页
        page=PageHelper.startPage(currPageNum,pageSize);
        //查询列表
        List list=userDao.getLikeUsers(cond);
        //返回page
        return page;
    }

    @Override
    public Page<User> getLikeBlackList(Map<String, Object> cond) {
        Page<User> page=new Page();
        //得到记录总数,赋给page的total属性
        page.setTotal(userDao.getLikeBlackListNum(cond));
        //获取每页大小
        int pageSize=Integer.parseInt(String.valueOf(cond.get("pageSize")));
        page.setPageSize(pageSize);
        //获取当前页码
        int currPageNum=Integer.parseInt(String.valueOf(cond.get("pageNum")));
        //计算出总页数
        page.setPageNum ((int) (page.getTotal()/pageSize+(page.getTotal()%pageSize==0?0:1)));
        //启动分页
        page=PageHelper.startPage(currPageNum,pageSize);
        //查询列表
        List list=userDao.getLikeBlackList(cond);
        //返回page
        return page;
    }

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }
}
